/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba-web
 * 文件名：	BProcDispatcherListener.java
 * 模块说明：	
 * 修改历史：
 * Jul 27, 2008 - lxm - 创建。
 */
package com.hd123.rumba.gwt.util.client.batchprocess;

/**
 * 批处理调度侦听器。
 * 
 * @author lxm
 * 
 */
public interface BProcDispatcherListener {

  /**
   * 当调度一个原子处理时被触发。
   * 
   * @param sender
   *          指定引起该事件的批处理调度器对象。
   * @param record
   *          指定当前的数据记录。
   * @param index
   *          指定当前数据记录的索引。
   */
  public void onDispatche(BProcDispatcher sender, Object record, int index);

  /**
   * 当批处理执行开始前被触发的事件。
   * 
   * @param sender
   *          指定引起该事件的批处理调度器对象。
   */
  public void onStart(BProcDispatcher sender);

  /**
   * 当批处理执行正常完成后被触发的事件。
   * 
   * @param sender
   *          指定引起该事件的批处理调度器对象。
   */
  public void onComplete(BProcDispatcher sender);

  /**
   * 当批处理被用户中断后被触发的事件。
   * 
   * @param sender
   *          指定引起该事件的批处理调度器对象。
   */
  public void onInterrupt(BProcDispatcher sender);

  /**
   * 当批处理被意外中断后被触发的事件。
   * 
   * @param sender
   *          指定引起该事件的批处理调度器对象。
   * @param msg
   *          指定导致意外中断的原因。
   * @param t
   *          指定导致处理中断的异常。允许null。
   */
  public void onAbort(BProcDispatcher sender, String msg, Throwable t);
}
